1. Field of the Invention
The present invention relates to computer data processing and graphics, and in particular, to computational tasks including, but not limited to, volume rendering and image processing operations.
2. Related Art
Volumetric data representing spatial volumes arises in many applications. Computed tomography (CT) and magnetic resonance imaging (MRI) scanners create a volume by imaging a series of cross-sections, also called slices or samples. Astrophysical, meteorological, and geophysical measurements, and business or economics data also naturally lead to a volumetric data set. Computer graphics systems use a volume rendering algorithm to display a visualization of volumetric data. See, Watt and Watt, Advanced Animation and Rendering Techniques: Theory and Practice, (ACM Press: New York, N.Y. 1992), Chapter 13, pages 297-321; Foley et al., Computer Graphics, Second Ed. In C, Addison-Wesley Publishers, U.S.A. (1996), pp. 1034-39; R. Drebin, L. Carpenter, and P. Hanrahan, "Volume Rendering," Computer Graphics, Vol. 22, No. 4, (SIGGRAPH '88, Atlanta, Ga.), August 1988, pp. 65-74; and B. Cabral, N. Cam and J. Foran, "Accelerated Volume Rendering and Tomographic Reconstruction Using Texture Mapping Hardware," Proceedings of ACM/IEEE Symposium on Volume Visualization (IEEE CS Press), pp. 91-98, 1994 (Order No. PR07067, 1995) (each of which is incorporated in its entirety herein by reference).
In axis-aligned volume rendering, volumetric data is represented by three sets of two-dimensional textures or images. Each set typically corresponds to a cardinal view (i.e., a view along an x, y, or z direction). To render a volume image an axis-aligned volume rendering (VR) algorithm volume renders each set of data relative to a current viewpoint. Typically, an axis-aligned VR algorithm begins with the set most nearly perpendicular to a view from eye point. Blending and accumulation operations are performed on samples along the selected axis to obtain a final frame buffer image. The frame buffer image is then output for display. See, e.g., the Volume Imaging application programming interface (also called OPENGL VOLUMIZER) released by Silicon Graphics, Inc.
Clinicians and other users want to modulate texture to accentuate different features in the volumetric data. For example, a radiologist observing a volume rendered display view of a human head may want to analyze only soft tissue. Such texture modulation, however, is difficult to perform in real-time on most graphics platforms. Indeed, on low-end graphics machines (platforms without three-dimensional (3-D) texturing), texture modulation is the single biggest performance limiting factor. Performance is further limited in the case of axis-aligned volume rendering as three copies of the volume data (that is, all three orthogonal sets of 2-D textures)need to be modulated.
These performance limitations slow texture modulation. In axis-aligned volume rendering, a user must wait until texture is modulated in each copy of the volume data. In addition, control is also lost during this time of texture modulation. In other words, a user cannot interact with the current volume rendered image until the texture modulation of all three copies of the volume data and the volume rendering of the current view based on a copy of the modulated volume data is complete.
As recognized by the inventor, what is needed is a technique which allows faster texture modulation in axis-aligned volume rendering even on lower end graphics platforms. Control needs to be returned to a user during texture modulation processing. A user needs to be able to interact with a volume rendered image after a texture modulation request is made, that is, while texture modulation processing is being performed. A user needs to be able to see an intermediate texture modulated view, that is, a view which is rendered and displayed while texture modulation is proceeding.